cifX Driver Version History:

V2.5.1.0 (20.08.2020)
-----------------
 - Update cifX Toolkit to V2.5.1.0

V2.5.0.0 (13.05.2020)
-----------------
 - Update cifX Toolkit to V2.5.0.0
 - NDIS Update:
    * Enable NDIS for protocol class 'network services' (e.g. for CIFX PCIE4000 or M.2 devices)
    * Multicast address handling added. Note: Support dependent on firmware

V2.4.0.0 (11.12.2019)
-----------------
 - Fixed installation issues of ISA devices on Windows 10 2019 LTSC
 - Rework trace log messages during device creation

V2.3.0.0 (18.11.2019)
-----------------
 - Update cifX Toolkit to V2.4.0.0
 - Updated Bootloader to V1.6.0.1
 - Change interrupt type for CIFX M.2 device to Message-Signaled Interrupt (MSI)
 - Fix bugcheck during restart of CIFX M.2 device
 - CIFX M.2 IRQ device is shown in Windows Device Manager

V2.2.0.0 (10.09.2019)
-----------------
 - Update cifX Toolkit to V2.3.0.0
 - Add initial support for CIFX M.2 devices (including Message-Signaled Interrupt support)
 - No extended memory for CIFX PCIE4000 devices
 - Fix bugcheck if driver verifier is enabled

V2.1.0.0 (29.03.2019)
-----------------
 - Update cifX Toolkit to V2.1.0.0
 - Add driver version number to registry key
 - Increase default reset timeout in cifXTest

V2.0.1.0 (01.03.2019)
-----------------
 - Update cifX Toolkit to V2.0.1.0, includes support for netX90 and netX4000 devices
 - Support CIFX PCIE4000-RE
 - Add API function xSysdeviceResetEx()
 - Add nxDrvStartEx() for updating netX90/netX4000 based devices
 - Add callback handling for nxDrvDownload()
 - cifXTest sends file related requests to System Channel instead of Default Channel
 - Remove warmstart handling from cifXSetup

V1.5.0.0 (28.09.2018)
-----------------
 - Fixed situations if "Windows Device Manager" shows a correct initialized "cifX PCI/PCIe Device"
   but enumeration of cifX boards fails (no boards displayed), possibly causing blue screen
   during device deinitialization or system shutdown.

V1.4.0.0 (19.09.2018)
-----------------
 - Update cifX Toolkit to V1.6.0.0
 - Updated Bootloader to V1.6.0.0
 - Fixed Memory leak in nxDrvFindDevice() if function is called multiple times starting with index 0
 - Fixed error in INF memconfig directive reported by infverif
 - Limit User trace outputs to one for suppressed progress callbacks
 - Add NDIS link state indication via RCX_LINK_STATUS_CHANGE_IND
 - Using NDIS with a NXHX board could result in a blue screen if the board is re-powered

V1.3.0.0 (18.02.2016)
-----------------
 - Windows 10 support added
 - Updated cifX Toolkit to V1.4.0.0
 - NDIS Update:
    * added NDIS 6 version of cifXNDIS to support Windows 10
 - Using progess callback/receive packet callback functions could lead in a driver crash 
 - Download progess does not show a state when successful finished 

V1.2.6.0 (06.11.2014)
-----------------
 - IOControl code/method check extended. Unknown control codes/methods are passed to standard handling to prevent BSOD
 - Updated cifX Toolkit to V1.2.0.1
 - Updated Bootloader to V1.4.17.0 (added dedicated bootloader for netX52)
  
V1.2.5.0 (10.03.2014)
-----------------
 - PCI cards do not work on some mainboards (e.g. Q87 chipset or if a Pericom PCIE<->PCI bridge is used)
   This is caused by PCI operations that are unsupported by netX silicon (MEMORY_READ_MULTIPLE / MEMORY_READ_LINE)

   ATTENTION: User accessing the I/O Areas via xChannelPLCMemoryPointer functions need to make sure to not execute
              an unsupported access to the DPM, by suppressing any 64Bit or larger pointer operation. 
              Use of operating systems memcpy routine on PLC memory area shall also be ommitted. 
              This cannot be fixed inside the driver, as the user application interacts with the DPM directly.

 - netX51/52 RAM Based device support using NXPCA-PCI Adapter
   ATTENTION: NXPCA-PCI adapter must be setup to 8Bit

 - Updated cifX Toolkit to V1.1.5.0
 - Updated Bootloader to V1.4.16.0

V1.2.4.0 (09.01.2014)
-----------------
 - Calling one of the cyclic data API functions during system power down may result in a BSOD.
 - NDIS update:
    * Since V1.2.3.0 it was not possible to run more than one cifx network adapter in interrupt 
      and one in polling mode (this issue only relates to Win2000 and WinXP).
    * Improved internal ethernet channel handling. In case of multiple consecutive resets, previous 
      handling may lead to an unresponsive ethernet adapter.

V1.2.3.0
-----------------
 - Setup modified to support Windows 8.1
 - COM state notification (CIFX_NOTIFY_COM_STATE) do not deliver actual communication state
   pvData is always a NULL pointer
 - NDIS Update:
    * update to new NDIS firmware interface
    * added support for system hibernation
    * fixed sporadic link status errors in interrupt mode
    * send error statistics were not updated

V1.2.2.0
-----------------
 - Fixed Memory leaks when restarting devices (cifXSetup / xDriverRestartDevice)
 - Updated cifX Toolkit to V1.1.4.0
 - Updated Bootloader to V1.4.12.0

V1.2.1.0
-----------------
 - Setup modified to support Windows 8
 - Updated cifX Toolkit to V1.1.3.0
 - Updated Bootloader to V1.4.10.0

V1.2.0.0
-----------------
 - Extended to provide bus-driver functionality for the cifXNDIS Device Driver
 - Added initial version of the cifXNDIS Device Driver
 - Updated Bootloader to V1.4.7.0

V1.1.1.0
-----------------
 - netX API (nxDrvDownload) may insert configuration database multiple times in 
   registry if configuration in run feature of SYCON.NET is used
 - Added command to set system time if a RTC is available on the hardware
 - Added support for MRAM via CIFX-API functions
 - Updated Bootloader to V1.4.6.0

V1.1.0.0
-----------------
 - Thread safety of netX API improved
 - Unexpected packet callback (pfnRecvPktCallback on xSysdeviceDownload, xChannelDownload) does not deliver 
   the correct packets not belonging to downloads
 - Unaligned access to DPM may deliver wrong data, depending on the used PCI / PCIe Bridge
 - Handling xSysdeviceInfo, xChannelInfo, xChannelCommonState, xChannelExtendedState outside of
   KMDF Framework to achieve better performance under Windows Vista / 7
 - Notification Callback functions (xChannelRegisterNotification) are not performed with higher thread priority.
    * THREAD_PRIORITY_TIME_CRITICAL for Sync callback
    * THREAD_PRIORITY_HIGHEST for all others.

V1.0.5.0
-----------------
 - netX API (nxDrvDownload) does not cleanup channel directories on multi-channel devices (e.g. CIFX50-2DP),
   when performing a firmware download. This may result in an inconsistent configuration after firmware
   update, and SYCON.NET may not be able to update the configuration persistently on channel != 0.

V1.0.4.0
-----------------
 - IOCTL's for cyclic data handled outside of KMDF framework to achieve better performance
 - Return values for xSysdevicePut/GetPacket() and xChannelPut/GetPacket() changed from CIFX_IOCONTROL_FAILED to CIFX_INVALID_POINTER if pointer checking fails
 - Updated to latest DIFX (Driver Installer Framework) to allow easier upgrading of drivers
 - Updated Bootloader to V1.3.6.0

V1.0.3.0
-----------------
 - netJACK 100 Support added
 - xChannelRegisterNotification does not pass expected notification data on callback
 - Updated Bootloader to V1.3.4.0

V1.0.2.0
-----------------
 - cifXHandleWarmstartParameter(), checking receive packet state fixed
 - Updated internal security permissions
 - Updated Bootloader to V1.3.2.0

V1.0.1.0
-----------------
Bugfix:
 - xSysdeviceFindFirst will not call ReceivePacket function on native 32Bit and 64 Bit. 
   32Bit application on 64Bit OS works ok.
 - NXSB-PCA test functions added (only 32Bit native and 64 Bit native)
 - xDriverMemoryPointer always needed pulChannelSize / pulChannelStartOffset even 
   if CIFX_NO_CHANNEL was requested
 - Downloading loadable modules (.NXO) may fail on larger files due to the last 
   confirmation packet taking longer than expected

V1.0.0.0
-----------------
 - Setup creates InstallDirectory Entry at wrong location. This results
   that cifXTest / cifXSetup cannot be opened from Control Panel, before a cifX
   card was inserted
 - xChannelSyncState Parameters updated (added Timeout)
 - Loadable modules not working correctly
 - xChannelPLCMemoryPointer returns invalid pointer on success
 - Interrupts for NXPCA-PCI not working
 - Timings for NXPCA-PCI boards were not written. DIP switch on card did only
   work in 8 Bit Mode.
 - Wrong timings for NXPCA-PCI Boards in .INF File. If an older version was
   installed it might be necessary to update the timings in the registry
 - netPLC was not detected
 - Driver may cause Blue Screen if Invalid Pointer is passed to xDriverRestartDevice
 - USER_GetWarmstartParameters(), using short file name to open file fixed

Based on Toolkit V1.0.0.0


V0.10.1.0
-----------------
 - Interrupt may not be re-enabled when restarting device via cifXSetup

V0.10.0.0
-----------------
 - Notification callbacks added
 - Sync added
 - Upload does not work from 32 Bit applications on 64Bit systems
 - Alias not working correctly

V0.9.10.0
---------
 - Shared interrupts may result in Blue screen if Interrupt is disabled for a
   PCI device.
 - Unmapping an invalid pointer via xChannelPLCMemoryPointer / xDriverMemoryPointer results
   in a Blue Screen with BAD_POOL_CALLER.
 - xDriverGetInformation did not work from 32Bit Applications running on x64 Windows
 - xDriverGetErrorDescription now working correctly
 - Added Cyclic Timer for COS Flag handling
 - xChannelFindFirst-/FindNextFile and xSysdeviceFindFirst-/FindNextFile were not working
   on 64Bit platforms using a 32 Bit application
 - xChannelPLCMemoryPtr / xDriverMemoryPointer did not work for 32-Bit Applications
   on 64Bit platforms

cifXSetup:
 - Support for cards with Slot numbers updated
 - UAC conformance added (Tools requires admin privileges)
 - Warmstart parameters for ECS updated

cifXTest:
 - IO Test dialog modified. It now skips drawing IO data for low cycle times, if
   windows is not able to update the windows fast enough.

V0.9.9.0
--------
 - Update to KMDF
 - x64 Support

B 0.952
--------------------------
04.02.2010
 - cifX Toolkit V0.952 included
 - NX50-RTE files removed from cifX.inf
 - NX50-RTE removed from driver installation

B 0.951
--------------------------
07.12.2009
 - cifX Toolkit V0.951 included
 - cifX Setup and Test program now checking the file names to max 8 characters 

B 0.950
--------------------------
06.11.2009
 - Support of cifX cards with slot number switch included
 - I/O data transfer via DMA implemented
 - cifX Toolkit V0.950 included

B 0.946
--------------------------
01.10.2009
 - cifX Toolkit V0.946 included

B 0.945
--------------------------
01.09.2009
 - cifX Toolkit V0.945 included

T 0.945
--------------------------
15.07.2009
 - netPLC HW Rev.2 support included

B 0.944
--------------------------
07.07.2009
 - cifX Toolkit V0.944 included

B 0.942
--------------------------
29.04.2009
 - cifX Toolkit V0.942 included
 - cifX32DLL, callbacks of channel and sysdevice functions included and therefore
   unnecessary functions implementation in the cifX32DLL removed 

B 0.941
--------------------------
03.02.2008
 - Based on cifX Toolkit B0.941
 
B 0.940
--------------------------
12.12.2008
 - Based on cifX Toolkit B0.940
 - Included PRELIMINIARY support for "Loadable Modules"

V 0.936
--------------------------
10.12.2008
 - cifX Toolkit updated to V0.931  
 - nxDRV function, in cifX32DLL, now changes the file attribute (READONLY to READ/WRITE)
   if necessary before deleting a file
 - Support for HilFileHeaderV3 included
 - Trace information during RestartDevice() included
 - Changes of the DPM system block layout added in cifXUser.h (CPUload/TimeSinceStart)
 - Added support of HilFileHeaderV3 in cifXSetup program 
 - Added changes of the DPM layout into cifXTest program
 - cifX INF file information for NXPCA-PCI boards changed
 - Answer to warmstart commands now excepted with size != 0 preventing error 0x800A0012
 

BETA 0.935
--------------------------
13.11.2008 
 - ClassGUID in cifX.INF file updated

20.06.2008
 - Function xDriverRestartDevice() inserted into the driver API


BETA 0.934
--------------------------
16.06.2008
 - Fixed driver blue screen during driver shutdown if an
   application still accesse the hardware


BETA 0.933
--------------------------
15.05.2008
 - nxDRV Functions added
 - Handling of shutdown notifications added 
 - Function xDriverRestartDevice() included
 - Toolkit V0.930 used


BETA 0.932
--------------------------
29.04.2008
 - DOWNLOAD_MODE_LICENSECODE added

02.04.2008

 - Toolkit V0.923 included


BETA 0.931
--------------------------

04.04.2008
 - USER_Trace calling from IRQL other than PASSIVE_LEVEL prevented

20.03.2008
 - netX API configuration function and restart device included


BETA 0.930
--------------------------

14.03.2008
 - NX-PCA-PCI hardware included

10.10.2007
 - cifX driver version now handled independently from the cifX Toolkit


=================================================
NOTE: Earlier driver version history was combined
with the version of the cifX toolkit and can be found under
version_history.txt
